package ch.Day08oop;

import java.util.Arrays;

public class Test {
    public static void main( String[] args ) {
        Student[] students = new Student[3];
        students[0] = new Student("张三", 19, 170.0, '男');
        students[1] = new Student("李四", 21, 160.0, '女');
        students[2] = new Student("王五", 18, 180.0, '男');

        //  public static void sort(T[] a, Comparator<T> c)
        //  参数一：需要排序的数组。
        //  参数二：给sort方法传递比较器对象Comparator，Comparator中制定排序规则。

//        Arrays.sort(students, new Comparator< Student >() {
//                        @Override
//                        public int compare( Student o1, Student o2 ) {
//                            // 年龄升序
//                            return o1.getAge() - o2.getAge();
//                        }
//                    }
//                   );

//        // 上述方法使用Lambda表达式简化
//        Arrays.sort(students, ( Student o1, Student o2 ) -> {
//                        return o1.getAge() - o2.getAge();
//                    }
//                   );
//        // 按规则二次简化，去除o1和o2前面的参数类型名称
//        Arrays.sort(students, ( o1, o2 ) -> {
//                        return o1.getAge() - o2.getAge();
//                    }
//                   );
        // 按规则三次简化，去除return关键字，去除大括号。
        Arrays.sort(students, ( o1, o2 ) -> o1.getAge() - o2.getAge());


        for ( int i = 0; i < students.length; i++ ) {
            Student student = students[i];
            System.out.println(student);
        }
    }
}
